<!DOCTYPE html>
<html class="no-js" lang="zh-CN">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title>Posts - home</title>
	<script>(function(d,e){d[e]=d[e].replace("no-js","js");})(document.documentElement,"className");</script>
	<meta name="description" content="">
	<meta name="generator" content="Hugo 0.54.0" />
	<meta property="og:title" content="Posts" />
<meta property="og:description" content="pdc&#39;s Personal blog about something" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/post/" />

<meta property="og:updated_time" content="2020-06-06T00:00:00&#43;00:00"/>

	
	<link rel="dns-prefetch" href="//fonts.googleapis.com">
	<link rel="dns-prefetch" href="//fonts.gstatic.com">
	<link rel="alternate" type="application/rss+xml" href="/post/index.xml" title="home">
	<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700">
	<link rel="stylesheet" href="/css/style.css">
	<link rel="stylesheet" href="/css/custom.css">
	<link rel="shortcut icon" href="/favicon.ico">
		
</head>
<body class="body">
	<div class="container container--outer">
		<header class="header">
	<div class="container">
		<div class="logo">
			<a class="logo__link" href="/" title="home" rel="home">
				<div class="logo__title">home</div>
				
			</a>
		</div>
		
<nav class="menu">
	<button class="menu__btn" aria-haspopup="true" aria-expanded="false" tabindex="0">
		<span class="menu__btn-title" tabindex="-1">Menu</span>
	</button>
	<ul class="menu__list">
		<li class="menu__item">
			<a class="menu__link" href="/about/">about</a>
		</li>
		<li class="menu__item">
			<a class="menu__link" href="/post/2020-05-26-%E6%90%9C%E7%B4%A2%E6%8A%80%E5%B7%A7/">搜索技巧</a>
		</li>
		<li class="menu__item">
			<a class="menu__link" href="/post/2019-04-13-vim%E5%B8%B8%E8%A7%84%E4%BD%BF%E7%94%A8/">vim常规使用</a>
		</li>
		<li class="menu__item">
			<a class="menu__link" href="/post/2020-05-21-%E5%AD%A6%E4%B9%A0%E5%9B%BE/">学习图</a>
		</li>
	</ul>
</nav>

	</div>
</header>
		<div class="wrapper flex">
			<div class="primary">
			
<main class="main list" role="main">
	<header class="main__header">
		<h1 class="main__title">Posts</h1>
	</header><article class="list__item post">
	<header class="list__header">
		<h3 class="list__title post__title ">
			<a href="/post/2020-06-06-%E6%B8%B8%E6%88%8F/" rel="bookmark">
			游戏
			</a>
		</h3>
		<div class="list__meta meta">
<div class="meta__item-datetime meta__item">
	<svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg>
	<time class="meta__text" datetime="2020-06-06T00:00:00">2020-06-06</time>
</div>

<div class="meta__item-categories meta__item">
	<svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2l1 2h8v11h-16v-13z"/></svg>
	<span class="meta__text"><a class="meta__link" href="/categories/%e6%b8%b8%e6%88%8f" rel="category">游戏</a></span>
</div>
</div>
	</header>
	<div class="content list__excerpt post__content clearfix">
		适当的娱乐休闲，才能更好的撸码。
 无人深空（No Man&rsquo;s Sky）  stream上的太空题材探索类游戏，里面有无数的星球，每个星球都有自己独特的样貌，独特的生物。
 游戏截图 星系： 太空异象： 基地1： 基地2： 基地3： 候选基地1： 矿场1： 其他1： 星际舰队1： stream 喜欢玩的可以加stream一起玩，个人觉得这款游戏比较好玩，可以无限的探索星球。
stream name: chenjipdc
stream id: 1051479810
	</div>
</article><article class="list__item post">
	<header class="list__header">
		<h3 class="list__title post__title ">
			<a href="/post/2020-05-28-mysql%E4%B8%BB%E4%BB%8E/" rel="bookmark">
			mysql主从
			</a>
		</h3>
		<div class="list__meta meta">
<div class="meta__item-datetime meta__item">
	<svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg>
	<time class="meta__text" datetime="2020-05-28T00:00:00">2020-05-28</time>
</div>

<div class="meta__item-categories meta__item">
	<svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2l1 2h8v11h-16v-13z"/></svg>
	<span class="meta__text"><a class="meta__link" href="/categories/%e6%95%b0%e6%8d%ae%e5%ba%93" rel="category">数据库</a></span>
</div>
</div>
	</header>
	<div class="content list__excerpt post__content clearfix">
		mysql集群可以简单分为几类：
1、一主一从，常用，简单，多用于读写分离或备份。
master -----&gt; slave  2、互为主主，不常用。
master1 &lt;-----&gt; master2  3、一主多从，常用，多用于读写分离跟备份。
master1 -----&gt; slave1 \-----&gt; slave2 \-----&gt; slave3  4、一主多级从，不常用。缺点很明显，多级数据同步时间会是个硬伤；多级如果上级挂了，下级数据就不能同步，也是个硬伤。
master -----&gt; slave1 ----&gt; slave5 \-----&gt; slave2 -----&gt; slave3 \------&gt; slave4  5、多主一从，不常用。
master1 ---------\ master2 ------------&gt; slave1 master3 ---------/  搭建一主一从
首先需要准备两台服务器：node04、node05，使用mysql5.7。
node04作为master。ip：192.168.56.14
node05作为slave。ip：192.168.56.15
node05的/etc/hosts文件增加192.168.56.14 node04
 配置前两台mysql服务器都需创建需要同步的数据库是哪个  create database pdc;   node04节点修改mysql配置  vi /etc/my.cnf # [mysqld]加入以下配置 log-bin=master-bin #二进制文件名称 binlog-format=ROW #二进制日志格式，有row、statement、mixed三种格式，row指的是把改变的内容复制过去，而不是把命令在从服务器上执行一遍，statement指的是在主服务器上执行的SQL语句，在从服务器上执行同样的语句。MySQL默认采用基于语句的复制，效率比较高。mixed指的是默认采用基于语句的复制，一旦发现基于语句的无法精确的复制时，就会采用基于行的复制。 server-id=1	#要求各个服务器的id必须不一样 binlog-do-db=pdc #同步的数据库名称   登录node4的mysql授权同步的用户  # 授权操作 set global validate_password_policy=0; set global validate_password_length=1; grant replication slave on *.
	</div>
	<div class="list__footer clearfix">
		<a class="list__footer-readmore btn" href="/post/2020-05-28-mysql%E4%B8%BB%E4%BB%8E/">Read more…</a>
	</div>
</article><article class="list__item post">
	<header class="list__header">
		<h3 class="list__title post__title ">
			<a href="/post/2020-05-27-mysql%E6%89%A7%E8%A1%8C%E8%AE%A1%E5%88%92/" rel="bookmark">
			mysql执行计划
			</a>
		</h3>
		<div class="list__meta meta">
<div class="meta__item-datetime meta__item">
	<svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg>
	<time class="meta__text" datetime="2020-05-27T00:00:00">2020-05-27</time>
</div>

<div class="meta__item-categories meta__item">
	<svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2l1 2h8v11h-16v-13z"/></svg>
	<span class="meta__text"><a class="meta__link" href="/categories/%e6%95%b0%e6%8d%ae%e5%ba%93" rel="category">数据库</a></span>
</div>
</div>
	</header>
	<div class="content list__excerpt post__content clearfix">
		参考：
mysql5.7
马士兵database笔记
 mysql查看执行计划使用explain+SQL语句。注意：执行计划里面的参数都是预估值，并不是正在的查询！！！
 explain示例结果
+----+--------------+-------------+------------+--------+---------------------+---------------------+---------+------------------+------+----------+-------------------------+ | id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra | +----+--------------+-------------+------------+--------+---------------------+---------------------+---------+------------------+------+----------+-------------------------+ | 1 | PRIMARY | st | NULL | index | PRIMARY | PRIMARY | 82 | NULL | 17 | 100.00 | NULL | | 1 | PRIMARY | sc | NULL | ref | PRIMARY | PRIMARY | 82 | learning.
	</div>
	<div class="list__footer clearfix">
		<a class="list__footer-readmore btn" href="/post/2020-05-27-mysql%E6%89%A7%E8%A1%8C%E8%AE%A1%E5%88%92/">Read more…</a>
	</div>
</article><article class="list__item post">
	<header class="list__header">
		<h3 class="list__title post__title ">
			<a href="/post/2020-05-27-mysql%E9%94%81/" rel="bookmark">
			mysql锁
			</a>
		</h3>
		<div class="list__meta meta">
<div class="meta__item-datetime meta__item">
	<svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg>
	<time class="meta__text" datetime="2020-05-27T00:00:00">2020-05-27</time>
</div>

<div class="meta__item-categories meta__item">
	<svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2l1 2h8v11h-16v-13z"/></svg>
	<span class="meta__text"><a class="meta__link" href="/categories/%e6%95%b0%e6%8d%ae%e5%ba%93" rel="category">数据库</a></span>
</div>
</div>
	</header>
	<div class="content list__excerpt post__content clearfix">
		参考：
mysql5.7 InnoDB-locking
mysql5.7 Lock-tables
马士兵database笔记
mysql常用锁分为两类：
1、表锁。开销小，粒度大，发生锁冲突概率高，并发效率低，不会产生死锁。一般适合查询类场景。
2、行锁。开销大，粒度小，发生锁冲突概率低，并发效率高，可能会造成死锁。一般适合更新类场景。
mysql手动开启锁：
LOCK TABLES tbl_name [[AS] alias] lock_type [, tbl_name [[AS] alias] lock_type] ... lock_type: { READ [LOCAL] | [LOW_PRIORITY] WRITE } UNLOCK TABLES  1、MyISAM锁 表共享读锁（table read locking） 不会阻塞其他session对表的读操作，但会阻塞写操作；当前session既可以读也可以进行写操作。
表独占写锁（table write locking） 会阻塞其他session对表的写跟读操作；当前session既可以读也可以进行写操作。
建表模拟数据：
CREATE TABLE `testlock` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO `testlock` (`id`, `name`) VALUES ('1', 'a'); INSERT INTO `testlock` (`id`, `name`) VALUES ('2', 'b'); INSERT INTO `testlock` (`id`, `name`) VALUES ('3', 'c'); INSERT INTO `testlock` (`id`, `name`) VALUES ('4', 'd');  写阻塞
	</div>
	<div class="list__footer clearfix">
		<a class="list__footer-readmore btn" href="/post/2020-05-27-mysql%E9%94%81/">Read more…</a>
	</div>
</article><article class="list__item post">
	<header class="list__header">
		<h3 class="list__title post__title ">
			<a href="/post/2020-05-26-%E6%90%9C%E7%B4%A2%E6%8A%80%E5%B7%A7/" rel="bookmark">
			搜索技巧
			</a>
		</h3>
		<div class="list__meta meta">
<div class="meta__item-datetime meta__item">
	<svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg>
	<time class="meta__text" datetime="2020-05-26T00:00:00">2020-05-26</time>
</div>

<div class="meta__item-categories meta__item">
	<svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2l1 2h8v11h-16v-13z"/></svg>
	<span class="meta__text"><a class="meta__link" href="/categories/search" rel="category">search</a></span>
</div>
</div>
	</header>
	<div class="content list__excerpt post__content clearfix">
		掌握一门搜索技巧，可以免去很多时间过滤杂乱的信息，提高学习、搜索的效率。
 github搜索技巧  以下搜索命令可以组合使用，如：cgroup in:name stars:&gt;100 language:go
 1、搜索仓库
 in:name 搜索仓库名称，如：cgroup in:name in:description 搜索描述，如：cgroup in:description in:readme 搜索readme文件，如：cgroup教程 in:readme repo:owner/name 匹配特定仓库名，如：repo:containerd/cgroups user:username 匹配用户，如：user:containerd org:orgname 匹配组织，如：org:cgroup size:n 仓库大小，如：size:&gt;1000，仓库大小大于1M；size:&lt;3000，仓库大小小于3M；size:1000..3000，仓库大小1M-3M followers:n 匹配关注者，如：cgroup followers:1..10，匹配拥有 1 到 10 个关注者并且提及 &ldquo;cgroup&rdquo; 一词的的仓库。 forks:n 按fork数匹配，如：cgroup forks:&gt;10 stars:n 按star数搜索，如：cgroup stars:&gt;1000,cgroup stars:&lt;100,cgroup stars:100..1000 created:YYYY-MM-DD 按仓库创建时间搜索，如：cgroup created:2019-01-01 pushed:YYYY-MM-DD 按仓库上次更新时间搜索，如：cgroup pushed:2020-05-07 language:LANGUAGE 按语言搜索，如：cgroup language:go topic:TOPIC 按主题搜索，如：topic:cgroup topics:n 按主题数搜索，如：topics:&gt;3,topics:5 license:lic 按许可证搜索，如：license:mit,license:apache-2.0 is:public 公开的仓库匹配 is:privite 自己有访问权限的仓库匹配 mirror:true 是否为镜像搜索 archived:true 是否归档 good-first-issues:&gt;n 按有多少个good-first-issues标签搜索的内容，如：good-first-issues:&gt;1 cgroup help-wanted-issues:&gt;n 按有多少个help-wanted标签搜索的内容，如：help-wanted-issues:&gt;1 cgroup  2、主题搜索
	</div>
	<div class="list__footer clearfix">
		<a class="list__footer-readmore btn" href="/post/2020-05-26-%E6%90%9C%E7%B4%A2%E6%8A%80%E5%B7%A7/">Read more…</a>
	</div>
</article><article class="list__item post">
	<header class="list__header">
		<h3 class="list__title post__title ">
			<a href="/post/2020-05-21-%E5%AD%A6%E4%B9%A0%E5%9B%BE/" rel="bookmark">
			学习图
			</a>
		</h3>
		<div class="list__meta meta">
<div class="meta__item-datetime meta__item">
	<svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg>
	<time class="meta__text" datetime="2020-05-21T00:00:00">2020-05-21</time>
</div>

<div class="meta__item-categories meta__item">
	<svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2l1 2h8v11h-16v-13z"/></svg>
	<span class="meta__text"><a class="meta__link" href="/categories/java" rel="category">java</a>, <a class="meta__link" href="/categories/bigdata" rel="category">bigdata</a></span>
</div>
</div>
	</header>
	<div class="content list__excerpt post__content clearfix">
		  画图是学习的一种方法，把自己学习理解的东西画出来、描述出来就是最大的收获。
 以下的图会不定时增加新内容，记录学习的心路历程。
java  java思维导图 spring boot UML spring UML spring aop/transational UML  数据库  mysql UML redis UML redis 集群UML  大数据  hadoop UML  
	</div>
</article><article class="list__item post">
	<header class="list__header">
		<h3 class="list__title post__title ">
			<a href="/post/2020-05-16-hdfs%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%E8%AE%B0%E5%BD%95/" rel="bookmark">
			hdfs环境搭建记录
			</a>
		</h3>
		<div class="list__meta meta">
<div class="meta__item-datetime meta__item">
	<svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg>
	<time class="meta__text" datetime="2020-05-16T00:00:00">2020-05-16</time>
</div>

<div class="meta__item-categories meta__item">
	<svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2l1 2h8v11h-16v-13z"/></svg>
	<span class="meta__text"><a class="meta__link" href="/categories/hadoop" rel="category">hadoop</a></span>
</div>
</div>
	</header>
	<div class="content list__excerpt post__content clearfix">
		环境准备(使用centos 7)  使用vbox虚拟机安装的centos 7
 修改主机名： vi /etc/hostname node00  安装必要软件： yum install rsync -y yum install ssh -y yum install zlib.i686 -y yum install psmisc -y # 时间同步器，不然跑任务会失败 yum install ntp -y  修改为静态ip： vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.56.10 # 修改各台主机映射 vi /etc/hosts 192.168.56.10 node00 192.168.56.11 node01 192.168.56.12 node02 192.168.56.13 node03 # 然后重启机器 reboot  配置时间同步 vi /etc/ntp.conf server ntp1.aliyun.com service ntpd start chkconfig ntpd on  关闭iptables： systemctl stop iptables systemctl disable iptables  关闭防火墙： systemctl stop firewalld.
	</div>
	<div class="list__footer clearfix">
		<a class="list__footer-readmore btn" href="/post/2020-05-16-hdfs%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%E8%AE%B0%E5%BD%95/">Read more…</a>
	</div>
</article><article class="list__item post">
	<header class="list__header">
		<h3 class="list__title post__title ">
			<a href="/post/2020-05-16-yarn%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%E8%AE%B0%E5%BD%95/" rel="bookmark">
			yarn环境搭建记录
			</a>
		</h3>
		<div class="list__meta meta">
<div class="meta__item-datetime meta__item">
	<svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg>
	<time class="meta__text" datetime="2020-05-16T00:00:00">2020-05-16</time>
</div>

<div class="meta__item-categories meta__item">
	<svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2l1 2h8v11h-16v-13z"/></svg>
	<span class="meta__text"><a class="meta__link" href="/categories/hadoop" rel="category">hadoop</a></span>
</div>
</div>
	</header>
	<div class="content list__excerpt post__content clearfix">
		首先应该先起hdfs
 单点yarn  首先进入目录：/opt/bigdata/apache-hadoop-2.6.5-local/etc/hadoop/
 修改配置文件mapred-site.xml &lt;property&gt; &lt;name&gt;mapreduce.framework.name&lt;/name&gt; &lt;value&gt;yarn&lt;/value&gt; &lt;/property&gt;  修改配置文件yarn-site.xml &lt;!-- shuffle 洗牌 --&gt; &lt;property&gt; &lt;name&gt;yarn.nodemanager.aux-services&lt;/name&gt; &lt;value&gt;mapreduce_shuffle&lt;/value&gt; &lt;/property&gt;  启动 start-yarn.sh  高可用集群HA 节点规划  node00 resource manager node01 node manager node02 node manager + resource manager node03 node manager  修改配置文件mapred-site.xml &lt;property&gt; &lt;name&gt;mapreduce.framework.name&lt;/name&gt; &lt;value&gt;yarn&lt;/value&gt; &lt;/property&gt;   这里yarn也可以改为local，本地debug的时候使用
 修改配置文件yarn-site.xml &lt;!-- shuffle 洗牌 --&gt; &lt;property&gt; &lt;name&gt;yarn.nodemanager.aux-services&lt;/name&gt; &lt;value&gt;mapreduce_shuffle&lt;/value&gt; &lt;/property&gt; &lt;!-- 开启rm高可用 --&gt; &lt;property&gt; &lt;name&gt;yarn.resourcemanager.ha.enabled&lt;/name&gt; &lt;value&gt;true&lt;/value&gt; &lt;/property&gt; &lt;!
	</div>
	<div class="list__footer clearfix">
		<a class="list__footer-readmore btn" href="/post/2020-05-16-yarn%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%E8%AE%B0%E5%BD%95/">Read more…</a>
	</div>
</article><article class="list__item post">
	<header class="list__header">
		<h3 class="list__title post__title ">
			<a href="/post/2019-04-14-awk%E5%B8%B8%E8%A7%84%E4%BD%BF%E7%94%A8/" rel="bookmark">
			awk常规使用
			</a>
		</h3>
		<div class="list__meta meta">
<div class="meta__item-datetime meta__item">
	<svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg>
	<time class="meta__text" datetime="2019-04-15T00:00:00">2019-04-15</time>
</div>

<div class="meta__item-categories meta__item">
	<svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2l1 2h8v11h-16v-13z"/></svg>
	<span class="meta__text"><a class="meta__link" href="/categories/linux" rel="category">linux</a></span>
</div>
</div>
	</header>
	<div class="content list__excerpt post__content clearfix">
		参考coolshell：https://coolshell.cn/articles/9070.html
参考《sed与awk第二版》
 awk能完成的一些功能  将文本文件看作是由记录跟字段组成的文本数据库 使用变量操作数据库 使用算数和字符串操作符 使用普通的程序设计结构，如循环和条件 生成格式化报告 定义函数 从脚本中执行Unix命令 处理Unix命令的结果 更加巧妙的处理命令行的参数 更容易的处理多个输入流  内建变量    $0 该行记录(所有列)     \$1 - $n 第几列，由FS分割   FS 分割列的符号，默认空格或tab   NF 列数   NR 总行数，如是多个文件则为所有文件累加   FNR 各文件行数   RS 每行记录的分隔符，默认为换行   OFS 输出字段分隔符，默认空格   ORS 输出的记录分隔符，默认换行   FILENAME 文件名称    操作示例 # 打印第1、第2列 netstat -nat | head -n 20 | awk '{print $1,$2}' # 匹配第4列为字符串&quot;tcp4&quot;并且第6列为字符串&quot;LISTEN&quot;，或条件为`|`，其他运算符&quot;!
	</div>
	<div class="list__footer clearfix">
		<a class="list__footer-readmore btn" href="/post/2019-04-14-awk%E5%B8%B8%E8%A7%84%E4%BD%BF%E7%94%A8/">Read more…</a>
	</div>
</article><article class="list__item post">
	<header class="list__header">
		<h3 class="list__title post__title ">
			<a href="/post/2019-04-13-vim%E5%B8%B8%E8%A7%84%E4%BD%BF%E7%94%A8/" rel="bookmark">
			vim常规使用
			</a>
		</h3>
		<div class="list__meta meta">
<div class="meta__item-datetime meta__item">
	<svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg>
	<time class="meta__text" datetime="2019-04-13T00:00:00">2019-04-13</time>
</div>

<div class="meta__item-categories meta__item">
	<svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2l1 2h8v11h-16v-13z"/></svg>
	<span class="meta__text"><a class="meta__link" href="/categories/linux" rel="category">linux</a></span>
</div>
</div>
	</header>
	<div class="content list__excerpt post__content clearfix">
		参考coolshell：https://coolshell.cn/articles/5426.html
vim tutorial：vimtutor
 基础操作  i、a - 光标处、后插入 o、O - 光标行后、前一行插入 x - 删除光标后一个字符 r、R - 替换一个、多个字符 dd - 删除当前行 p - 粘贴 yy - 拷贝当前行 u - undo ctrl + r - redo ctrl + b、ctrl + f - 上一页、下一页 ctrl + u、ctrl + d - 上半页、下半页 ctrl + y、ctrl + e - 向上、下滚动一行 :s /old/new 、:s /old/new/g- 当前行第一个、所有old字符换为new字符 :% s/old/new/g - 整个文件替换字符old为new esc - 退出编辑模式，回到normal模式  光标移动  hjkl - 分别对应←↓↑→ w、W - 到下一个单词开头，W到下一个单词（遇到blank后）开头 e、E - 到单词结尾，E到单词（直到遇到blank）结尾 b、B - 到单词开头，B到单词（直到遇到blank）开头 0 - 回行头 ^|_ - 到非blank字符行头 +和- - 移动到下一行开头、上一行开头 $ - 到行尾 g_ - 到非blank字符行尾 gg|1G|:1 - 回到文件第一行 G - 到文件最尾一行 NG|:N|Ngg - 到第N行 *、# - 匹配光标当前单词上一个(#)和下一个(*) % - 括号间移动，匹配(){}[]，需把光标放到括号上 fh - 移动光标到下一个字符为h的地方，Nfh为下N个 th - 移动光标到下一个字符为h的前一个字符，Nth为下N个 z - 将光标行移动到屏幕顶端 z.
	</div>
	<div class="list__footer clearfix">
		<a class="list__footer-readmore btn" href="/post/2019-04-13-vim%E5%B8%B8%E8%A7%84%E4%BD%BF%E7%94%A8/">Read more…</a>
	</div>
</article>
</main>

<div class="pagination">
	<span class="pagination__item pagination__item--current">1/3</span>
	<a class="pagination__item pagination__item--next btn" href="/post/page/2/">»</a>
</div>


			</div>
			
<aside class="sidebar sidebar--left"><div class="widget-search widget">
	<form class="widget-search__form" role="search" method="get" action="https://google.com/search">
		<label>
			<input class="widget-search__field" type="search" placeholder="SEARCH..." value="" name="q" aria-label="SEARCH...">
		</label>
		<input class="widget-search__submit" type="submit" value="Search">
		<input type="hidden" name="sitesearch" value="/" />
	</form>
</div>
<div class="widget-recent widget">
	<h4 class="widget__title">Recent Posts</h4>
	<div class="widget__content">
		<ul class="widget__list">
			<li class="widget__item"><a class="widget__link" href="/post/2020-06-06-%E6%B8%B8%E6%88%8F/">游戏</a></li>
			<li class="widget__item"><a class="widget__link" href="/post/2020-05-28-mysql%E4%B8%BB%E4%BB%8E/">mysql主从</a></li>
			<li class="widget__item"><a class="widget__link" href="/post/2020-05-27-mysql%E6%89%A7%E8%A1%8C%E8%AE%A1%E5%88%92/">mysql执行计划</a></li>
		</ul>
	</div>
</div>
<div class="widget-categories widget">
	<h4 class="widget__title">Categories</h4>
	<div class="widget__content">
		<ul class="widget__list">
			<li class="widget__item"><a class="widget__link" href="/categories/bigdata">Bigdata</a></li>
			<li class="widget__item"><a class="widget__link" href="/categories/hadoop">Hadoop</a></li>
			<li class="widget__item"><a class="widget__link" href="/categories/install">Install</a></li>
			<li class="widget__item"><a class="widget__link" href="/categories/java">Java</a></li>
			<li class="widget__item"><a class="widget__link" href="/categories/linux">Linux</a></li>
			<li class="widget__item"><a class="widget__link" href="/categories/markdown">Markdown</a></li>
			<li class="widget__item"><a class="widget__link" href="/categories/monitor">Monitor</a></li>
			<li class="widget__item"><a class="widget__link" href="/categories/search">Search</a></li>
			<li class="widget__item"><a class="widget__link" href="/categories/tips">Tips</a></li>
			<li class="widget__item"><a class="widget__link" href="/categories/%e6%95%b0%e6%8d%ae%e5%ba%93">数据库</a></li>
			<li class="widget__item"><a class="widget__link" href="/categories/%e6%b8%b8%e6%88%8f">游戏</a></li>
		</ul>
	</div>
</div>
<div class="widget-taglist widget">
	<h4 class="widget__title">Tags</h4>
	<div class="widget__content">
		<a class="widget-taglist__link widget__link btn" href="/tags/awk" title="Awk">Awk (1)</a>
		<a class="widget-taglist__link widget__link btn" href="/tags/centos" title="Centos">Centos (1)</a>
		<a class="widget-taglist__link widget__link btn" href="/tags/github" title="Github">Github (1)</a>
		<a class="widget-taglist__link widget__link btn" href="/tags/google" title="Google">Google (1)</a>
		<a class="widget-taglist__link widget__link btn" href="/tags/hadoop" title="Hadoop">Hadoop (1)</a>
		<a class="widget-taglist__link widget__link btn" href="/tags/hdfs" title="Hdfs">Hdfs (1)</a>
		<a class="widget-taglist__link widget__link btn" href="/tags/hugo" title="Hugo">Hugo (1)</a>
		<a class="widget-taglist__link widget__link btn" href="/tags/java" title="Java">Java (1)</a>
		<a class="widget-taglist__link widget__link btn" href="/tags/jekyll" title="Jekyll">Jekyll (1)</a>
		<a class="widget-taglist__link widget__link btn" href="/tags/mongodb" title="Mongodb">Mongodb (3)</a>
		<a class="widget-taglist__link widget__link btn" href="/tags/mysql" title="Mysql">Mysql (4)</a>
		<a class="widget-taglist__link widget__link btn" href="/tags/spring" title="Spring">Spring (1)</a>
		<a class="widget-taglist__link widget__link btn" href="/tags/vim" title="Vim">Vim (1)</a>
		<a class="widget-taglist__link widget__link btn" href="/tags/yarn" title="Yarn">Yarn (1)</a>
		<a class="widget-taglist__link widget__link btn" href="/tags/%e4%bc%91%e9%97%b2" title="休闲">休闲 (1)</a>
		<a class="widget-taglist__link widget__link btn" href="/tags/%e5%b7%a5%e5%85%b7" title="工具">工具 (1)</a>
		<a class="widget-taglist__link widget__link btn" href="/tags/%e7%94%a8%e6%88%b7%e7%ae%a1%e7%90%86" title="用户管理">用户管理 (1)</a>
		<a class="widget-taglist__link widget__link btn" href="/tags/%e7%9b%91%e6%8e%a7" title="监控">监控 (1)</a>
		<a class="widget-taglist__link widget__link btn" href="/tags/%e8%b5%84%e6%96%99" title="资料">资料 (1)</a>
		<a class="widget-taglist__link widget__link btn" href="/tags/%e8%bd%ac%e5%8f%91" title="转发">转发 (1)</a>
		<a class="widget-taglist__link widget__link btn" href="/tags/%e8%bd%af%e4%bb%b6" title="软件">软件 (1)</a>
	</div>
</div>
<div class="widget-social widget">
	<h4 class="widget-social__title widget__title">Social</h4>
	<div class="widget-social__content widget__content">
		<div class="widget-social__item widget__item">
			<a class="widget-social__link widget__link btn" title="GitHub" rel="noopener noreferrer" href="https://github.com/chenjipdc" target="_blank">
				<svg class="widget-social__link-icon icon icon-github" width="24" height="24" viewBox="0 0 384 374"><path d="m192 0c-106.1 0-192 85.8-192 191.7 0 84.7 55 156.6 131.3 181.9 9.6 1.8 13.1-4.2 13.1-9.2 0-4.6-.2-16.6-.3-32.6-53.4 11.6-64.7-25.7-64.7-25.7-8.7-22.1-21.3-28-21.3-28-17.4-11.9 1.3-11.6 1.3-11.6 19.3 1.4 29.4 19.8 29.4 19.8 17.1 29.3 44.9 20.8 55.9 15.9 1.7-12.4 6.7-20.8 12.2-25.6-42.6-4.8-87.5-21.3-87.5-94.8 0-20.9 7.5-38 19.8-51.4-2-4.9-8.6-24.3 1.9-50.7 0 0 16.1-5.2 52.8 19.7 15.3-4.2 31.7-6.4 48.1-6.5 16.3.1 32.7 2.2 48.1 6.5 36.7-24.8 52.8-19.7 52.8-19.7 10.5 26.4 3.9 45.9 1.9 50.7 12.3 13.4 19.7 30.5 19.7 51.4 0 73.7-44.9 89.9-87.7 94.6 6.9 5.9 13 17.6 13 35.5 0 25.6-.2 46.3-.2 52.6 0 5.1 3.5 11.1 13.2 9.2 76.2-25.5 131.2-97.3 131.2-182 0-105.9-86-191.7-192-191.7z"/></svg>
				<span>GitHub</span>
			</a>
		</div>
		<div class="widget-social__item widget__item">
			<a class="widget-social__link widget__link btn" title="Email" href="mailto:chenjipdc@gmail.com">
				<svg class="widget-social__link-icon icon icon-mail" width="24" height="24" viewBox="0 0 416 288"><path d="m0 16v256 16h16 384 16v-16-256-16h-16-384-16zm347 16-139 92.5-139-92.5zm-148 125.5 9 5.5 9-5.5 167-111.5v210h-352v-210z"/></svg>
				<span>chenjipdc@gmail.com</span>
			</a>
		</div>
	</div>
</div>
</aside>
		</div>
		<footer class="footer">
	<div class="container footer__container flex">
		
		<div class="footer__copyright">
			&copy; 2020 pdc.
			<span class="footer__copyright-credits">Generated with <a href="https://gohugo.io/" rel="nofollow noopener" target="_blank">Hugo</a> and <a href="https://github.com/Vimux/Mainroad/" rel="nofollow noopener" target="_blank">Mainroad</a> theme.</span>
		</div>
	</div>
</footer>
	</div>
<script async defer src="/js/menu.js"></script></body>
</html>